package com.ghsc.ghxc.jsb.ui.message.view

import android.content.Context
import com.cn.appcore.ext.loge
import com.netease.nimlib.sdk.NIMClient
import com.netease.yunxin.kit.corekit.im.IMKitClient
import com.netease.yunxin.kit.corekit.im.extend.IUserInfoDelegate
import com.netease.yunxin.kit.corekit.im.model.UserField
import com.netease.yunxin.kit.corekit.im.model.UserInfo
import com.netease.yunxin.kit.corekit.im.provider.FetchCallback
import com.netease.yunxin.kit.corekit.im.repo.CommonRepo
import com.netease.yunxin.kit.corekit.im.utils.RouterConstant
import com.netease.yunxin.kit.corekit.route.XKitRouter

/**
 * 项目：GuoHuaMall
 * 包名：com.ghsc.ghxc.ui.message.yunxin
 * 类名：RouterUtils
 * 创建时间：2023/10/23 10:20
 * 创建人 @author： xiaolin
 * 描述 ：Todo...
 */
object RouterUtils {







    /** 跳转单聊 会话界面 **/
    fun startToJumpSingleChat(content: Context,uid:String){
        XKitRouter.withKey(RouterConstant.PATH_CHAT_P2P_PAGE)
            .withParam(RouterConstant.CHAT_ID_KRY,uid)
            .withContext(content).navigate()
    }
    /** 跳转群 会话界面 **/
    fun startToJumpGoup(content: Context,tid:String){
        //跳转到群聊
        XKitRouter.withKey(RouterConstant.PATH_CHAT_TEAM_PAGE)
            .withContext(content)
            .withParam(RouterConstant.CHAT_ID_KRY, tid)
            .navigate()
    }




    /**
     * 刷新自己的头像和昵称
     */
    fun setUserInfo( name: String,avatar:String){

//        IMKitClient.setUserInfoDelegate(object : IUserInfoDelegate {
//            override fun fetchUserInfo(
//                accountList: List<String>,
//                callback: FetchCallback<List<UserInfo>>
//            ): Boolean {
//                loge("fetchUserInfo="+accountList.toString())
//                //异步获取用户数据
//                return true
//            }
//
//            override fun getUserInfo(account: String): UserInfo? {
//                loge("getUserInfo="+account)
//                var user=UserInfo(account,name,avatar)
//                return user
//            }
//
//            override fun updateUserInfo(
//                fields: Map<UserField, Any>,
//                callback: FetchCallback<Void>
//            ) {
//                //用户数据更新
//            }
//
//        },true)


//        NIMClient.getService()
        val map: MutableMap<UserField, Any> = HashMap()
        map[UserField.Name] = name
        map[UserField.Avatar] = avatar
        CommonRepo.updateUserInfo(map, object : FetchCallback<Void> {
            override fun onException(exception: Throwable?) {
                loge("更新IM成功onException")
            }

            override fun onFailed(code: Int) {
                loge("更新IMonFailed")
            }

            override fun onSuccess(param: Void?) {
                loge("更新IMonSuccess")
            }

        })
    }
}